package com.zlcx.tz.live.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * <p></p>
 * <PRE>
 * <BR>    修改记录
 * <BR>-----------------------------------------------
 * <BR>    修改日期         修改人          修改内容
 * </PRE>
 *
 * @author zl
 * @version 1.0
 * @date Created in 2019/4/18 11:25
 * @copyright: Copyright (c) founders
 */
@Data
public class UserVO {

    private Long id;

    private String name;

    private String username;

    private String phone;

    private Integer age;

    private Integer sex;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date birthday;

    private String identity;

    @ApiModelProperty(position = 80, value = "身份名称")
    private String identityName;

    private String mpOpenId;

    private String avatarUrl;

    private String deviceId;

    private Integer currentLearnTargetId;

    private String currentLearnTargetName;

    @ApiModelProperty(value = "60、计时自习室学习中，其他都是未学习")
    private Integer status;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    private Long fansCount;

    private Long followCount;

    /**
     * 用户类型 1正常用户 -1机器人
     */
    private Integer type;

    @ApiModelProperty(value = "是否vip用户，1是，0不是")
    private Integer vipStatus;

    @ApiModelProperty(position = 210, value = "用户是否在线1、在线 0、不在线")
    private Integer online;

    @ApiModelProperty(position = 202, value = "上麦id/座位id")
    private Long lianMaiId;

    @ApiModelProperty(position = 204, value = "房间id/计时房间id")
    private Long roomId;

    private Integer roomType;

    @ApiModelProperty(value = "开始学习时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startLearnTime;

    /**
     * 用户socket通道id（创建时间）
     */
    private Long channelId;

    private String app;

    @SuppressWarnings("all")
    public enum StatusEnums {
        NOMAL(1),
        LEARNING(2),
        LIAN_MAI_TIMING( 3),
        LEARN_TIMING_PAUSE( 12),
        LEARN_TIMING_CONINUE( 13),

        LIVE_LEARNING(3),
        LEARN_TIME_LEARNING(60),;
        public final Integer code;

        StatusEnums(Integer code) {
            this.code = code;
        }
    }
}
